package sicnu.cs.aps.service;

import com.baomidou.mybatisplus.extension.service.IService;
import sicnu.cs.aps.domain.entity.Activity;
import sicnu.cs.aps.domain.entity.ActivityTeam;

import java.util.List;

/**
 * @author chengke
 * @version 1.0
 * @description 活动报名业务层
 * @date 2022/5/27 10:50
 */

public interface IActivitySignService extends IService<ActivityTeam> {

    /**
     * 根据活动id查询用户id
     * @param ActivityId 活动id
     * @return 用户ID list
     */
    List<Long> selectUserIdByActivityId(Long ActivityId);

    /**
     * 根据活动id查询队伍id list
     * @param activityId 活动id
     * @return 队伍id list
     */
    List<Long> selectTeamIdByActivityId(Long activityId);

    /**
     * 根据活动id和队长id查询队伍id
     *
     * @param userId     队长id
     * @param activityId 活动id
     * @return 队伍id
     */
    Long selectTeamIdByUserIdAndActivityId(Long userId, Long activityId);

    Long selectUserIdByTeamId(Long teamId);

    void inviteTeacherWhenSignup(Long currentUserId, Long teacherId, ActivityTeam currentTeam, Activity currentActivity);

    void inviteStudentsWhenSignup(Long currentUserId, List<Long> studentIds, ActivityTeam currentTeam, Activity currentActivity);
}
